package com.itheima.simple;

import com.itheima.util.ConnectionUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

// 生产者,发送信息的 : 简单模式,就是一对一的模式, 生产者发送一条信息过去,消费者就接收一条信息,
public class Producer {
    // 创建队列的名称, 简单模式
    static final String QUEUE_NAME = "simple_queue";
    public static void main(String[] args) throws Exception {
        // 获取连接对象
        Connection connection = ConnectionUtil.getConnection();
        // 创建频道(通道: 通过连接对象进行的频道的创建)
        Channel channel = connection.createChannel();
        // 创建队列,是由通道进行创建的
        /*
        *参数一: 队列的名称
        *参数二: 是否定义持久化队列(消息会持久化保存在服务器上) 一般选择true
        *参数三: 是否独占本连接 一般选择 false
        *参数四: 是否在不使用的时候队列自动删除 一般选择 false
        *参数五: 其它的参数
        * */
        channel.queueDeclare(QUEUE_NAME,true,false,false,null);

        // 要发送的消息
        String message = "你好呀!小小兔... ";
        /* 通道发送信息:
        * 参数1: 交换机的名称,如果没有指定交换机的名称的话,就用默认的
        * 参数2: 路由key,简单模式的话,可以传递队列的名称
        * 参数3: 消息以及其它的属性
        * 参数4: 消息的内容
        * */
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
        System.out.println("已发送的消息: "+message);

        // 关闭资源
        channel.close();
        connection.close();
    }
}
